import { reactive } from 'vue'

// 用户信息状态
const userStore = reactive({
  userInfo: null
})

// 从localStorage获取用户信息
const initUserInfo = () => {
  const storedUserInfo = localStorage.getItem('userInfo')
  console.log('初始化用户信息，localStorage中的值:', storedUserInfo)
  
  if (storedUserInfo) {
    try {
      userStore.userInfo = JSON.parse(storedUserInfo)
      console.log('解析后的用户信息:', userStore.userInfo)
    } catch (error) {
      console.error('解析用户信息失败:', error)
      localStorage.removeItem('userInfo')
    }
  }
}

// 设置用户信息
const setUserInfo = (info) => {
  console.log('设置用户信息:', info)
  userStore.userInfo = info
  localStorage.setItem('userInfo', JSON.stringify(info))
}

// 清除用户信息
const clearUserInfo = () => {
  console.log('清除用户信息')
  userStore.userInfo = null
  localStorage.removeItem('userInfo')
  localStorage.removeItem('token')
}

// 判断是否为管理员
const isAdmin = () => {
  return userStore.userInfo?.userType === 1
}

// 判断是否为普通用户
const isUser = () => {
  return userStore.userInfo?.userType === 0
}

// 检查是否有权限访问某个功能
const hasPermission = (permission) => {
  if (!userStore.userInfo) return false
  
  const permissions = {
    'user:manage': isAdmin(), // 用户管理权限
    'book:manage': isAdmin(), // 图书管理权限
    'borrow:manage': isAdmin(), // 借阅管理权限
    'book:borrow': true, // 图书借阅权限（所有用户都有）
    'dashboard:view': true // 首页查看权限（所有用户都有）
  }
  
  return permissions[permission] || false
}

// 初始化
initUserInfo()

export const useUserStore = () => {
  return {
    userInfo: userStore.userInfo,
    setUserInfo,
    clearUserInfo,
    isAdmin,
    isUser,
    hasPermission
  }
} 